#include <iostream>
#include <vector>
using namespace std;
#define int long long 
const int N = 150;
int C[N][N];
void init() {
    for(int i = 0; i < N; i++) {
        C[i][0] = C[i][i] = 1;
        for(int j = 1; j < i; j++) {
            C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
        }
    }
}
vector<int> mulpromax(vector<int>& a, vector<int>& b) {
    int n = a.size(), m = b.size();
    vector<int> temp(n + m + 10, 0);
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            temp[i + j] += a[i] * b[j];
            temp[i + j + 1] += temp[i + j] / 10;
            temp[i + j] %= 10; 
        }
    }
    while(temp.back() == 0 && temp.size() > 1) {
        temp.pop_back();
    }
    return temp;
}
signed main() {
    int n, a, b;
    cin >> n >> a >> b;
    init();
    int l = 0;
    for (int i = 0; i <= a; i++) {
        l += C[i + n - 1][n - 1];
    }
    int r = 0;
    for (int i = 0; i <= b; i++) {
        r += C[i + n - 1][n - 1];
    }

    vector<int> x, y;
    while(l) {
        x.push_back(l % 10);
        l /= 10;
    }
    while(r) {
        y.push_back(r % 10);
        r /= 10;
    }
    vector<int> ret = mulpromax(x, y);
    for(int i = ret.size() - 1; i >= 0; i--) {
        cout << ret[i];
    }
    return 0;
}